﻿using System;
using System.Web.Security;
using System.Web.UI;
using OwnZTec.Bl;
using OwnZTec.Dto;

namespace OwnZTec.Web.controles.login
{
    public partial class AlterarSenha : UserControl
    {
        #region -- Membros e Construtores -------------------------------------------------------------------------------------------------
        public enum TipoAlteracao
        {
            AlterarSenha,
            MudarSenhaSolicitado
        }

        public TipoAlteracao Tipo
        {
            get
            {
                return Session["AlterarSenhaTipo"] == null ? TipoAlteracao.AlterarSenha : (TipoAlteracao)Session["AlterarSenhaTipo"];
            }
            set
            {
                Session["AlterarSenhaTipo"] = value;
            }
        }

        public string Login
        {
            get
            {
                return Session["AlterarSenhaLogin"] == null ? "" : Session["AlterarSenhaLogin"].ToString();
            }
            set
            {
                Session["AlterarSenhaLogin"] = value;
            }
        }

        public bool ExibirUsuario
        {
            get
            {
                return Session["AlterarSenhaExibirUsr"] == null ? true : (bool)Session["AlterarSenhaExibirUsr"];
            }
            set
            {
                Session["AlterarSenhaExibirUsr"] = value;
            }
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!ExibirUsuario)
                trEspacadoraUsuario.Visible = trUsuario.Visible = false;
        }
        #endregion ------------------------------------------------------------------------------------------------------------------------

        #region -- Eventos ----------------------------------------------------------------------------------------------------------------
        protected void CmdAlterarSenhaClick(object sender, EventArgs e)
        {
            var blUsuario = new BlUsuario();
            var usuario = new DtoUsuario { Login = Login, Senha = txtSenhaAtual.Text };

            var res = blUsuario.ValidarUsuario(usuario);

            if (res == -1)
            {
                lblLoginInvalido.Text = "Usuário ou senha inválidos";
                return;
            }

            usuario = blUsuario.ListarUm(res);
            usuario.Senha = txtConfirmarSenha.Text;

            blUsuario.AtualizarSenha(usuario);

            if (Tipo != TipoAlteracao.MudarSenhaSolicitado) return;

            FormsAuthentication.SetAuthCookie(usuario.Nome, false);

            Response.Redirect("/conteudoseguro/default.aspx");
        }
        #endregion ------------------------------------------------------------------------------------------------------------------------

    }
}